package com.speciality.demo.demos.web;

import com.speciality.demo.demos.dto.ChartDataVO;
import com.speciality.demo.demos.dto.HeatMapVO;
import com.speciality.demo.demos.service.WeatherChartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDateTime;

@RestController
@RequestMapping("/api/weather/chart")
public class WeatherChartController {
    @Autowired
    private WeatherChartService weatherChartService;

    /**
     * 获取气候趋势折线图数据
     * @param startTime 开始时间（格式：yyyy-MM-dd HH:mm）
     * @param endTime 结束时间（格式：yyyy-MM-dd HH:mm）
     */
    @GetMapping("/trend")
    public ChartDataVO getClimateTrend(
            @RequestParam
            @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm") // 适配前端的 "2024-10-09T00:00" 格式
            LocalDateTime startTime,

            @RequestParam
            @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm")
            LocalDateTime endTime
    ) {
        return weatherChartService.getClimateTrendData(startTime, endTime);
    }

    /**
     * 获取灾害热力图数据
     * @param startTime 开始时间（格式：yyyy-MM-dd HH:mm）
     * @param endTime 结束时间（格式：yyyy-MM-dd HH:mm）
     */
    @GetMapping("/heat")
    public HeatMapVO getDisasterHeat(
            @RequestParam
            @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm") // 适配前端的 "2024-10-09T00:00" 格式
            LocalDateTime startTime,

            @RequestParam
            @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm")
            LocalDateTime endTime
    ) {
        return weatherChartService.getDisasterHeatData(startTime, endTime);
    }
}
